package com.funong.matrix.biz.power.facade;

import com.funong.matrix.biz.base.entity.SysRoleEntity;
import com.funong.matrix.biz.power.pojo.dto.SysRoleUserDTO;
import com.funong.matrix.biz.base.entity.SysRoleUserEntity;
import com.funong.matrix.core.dto.QueryDTO;
import com.funong.matrix.core.dto.Result;

import java.util.List;

public interface SysRoleUserFacade {

    /**
     * 根据用户id查询权限列表
     */
    SysRoleUserDTO queryRoleUserByUserId(Integer userId);

    /**
     * 用户绑定角色权限
     *  userId roleCodeList
     */
    void saveUserRole(SysRoleUserDTO sysRoleUserDTO);

    /**
     * 根据用户id查询角色列表
     */
    List<SysRoleUserEntity> queryByUserId(Integer userId);

    /**
     * 根据角色编号查询角色列表
     */
    List<SysRoleUserEntity> queryByRoleCode(String roleCode);

    /**
     * 根据角色编号查询用户
     */
    List<Integer> queryUsersByRoleCode(String roleCode);


    /**
     * 查询角色信息
     */
    Result<List<SysRoleEntity>> queryRoleList(QueryDTO<SysRoleEntity> roleQO);

    /**
     * 新增保存角色信息
     */
    Boolean saveRole(SysRoleEntity sysRoleEntity);

    /**
     * 删除角色信息
     */
    Boolean deleteRole(SysRoleEntity sysRoleEntity);

    /**
     * 修改角色信息
     */
    Boolean updateRole(SysRoleEntity sysRoleEntity);

    /**
     * 角色启用禁用
     */
    Boolean updateRoleStatus(SysRoleEntity sysRoleEntity);
}